package hu.bme.mit.Nonogram.client;

import java.util.LinkedList;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

/**
 * The client side stub for the RPC service.
 */
@RemoteServiceRelativePath("nonogram")
public interface NonogramService extends RemoteService {
	String GenerateNonogram(LinkedList<String> header) throws IllegalArgumentException;
	int getNbrOfRowsInNonogram(long id) throws IllegalArgumentException;
	int getNbrOfColsInNonogram(long id) throws IllegalArgumentException;
	LinkedList<LinkedList<String>> getRowHeaderByID (long id) throws IllegalArgumentException;
	LinkedList<LinkedList<String>> getColumnHeaderByID (long id) throws IllegalArgumentException;
	boolean validateRow(long id, String rowText, int rowIndex) throws IllegalArgumentException;
	boolean validateColumn(long id, String rowText, int columnIndex) throws IllegalArgumentException;
	boolean validate(LinkedList<String> nonogramText,
			LinkedList<LinkedList<String>> rowHeader,
			LinkedList<LinkedList<String>> columnHeader);
	boolean checkNonogram(long id, LinkedList<String> current);
	
}
